package cobaia;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

public class DicionarioIngles implements IDicionario {
    
    private String filePath;
    
    public DicionarioIngles() {
    
        this.filePath = "src/arquivos/dicionarioIngles.csv";
    
    }
    
    public void setPalavra(String novaPalavra) throws Exception {
        FileWriter writer = new FileWriter(this.filePath);
        BufferedWriter buffer = new BufferedWriter(writer);
        buffer.write(novaPalavra+";");
        buffer.close();
    }

    public List<String> existePalavra(Collection<String> palavrasTexto) throws Exception {
        
        List<String> palavrasDicionario = new ArrayList<String>();
        BufferedReader buffer = new BufferedReader(new FileReader(this.filePath));
        String linha = buffer.readLine();
        while (linha != null) {
            if (linha.trim().length() > 0) {
                palavrasDicionario.addAll(Arrays.asList(linha.split(";")));
            }
            linha = buffer.readLine();
        }
        buffer.close();
        
        List<String> palavrasErradas = new ArrayList<String>();
        for(String palavraTexto : palavrasTexto) {
            boolean estaErrada = true;
            for(String palavraDicionario : palavrasDicionario) {
                if (palavraTexto.equalsIgnoreCase(palavraDicionario)) {
                    estaErrada = false;
                    break;
                }
            }
            if (estaErrada) {
                palavrasErradas.add(palavraTexto);
            }
        }
        return palavrasErradas;
    }
     
}
